package API.PackDome;

/**
 * ClassName:IntegerText002
 * Package:API.PackDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/2-21:12
 * @Version:v1.0
 */
public class IntegerText002 {
    public static void main(String[] args) {
        //在以前包装类如何进行计算
        Integer i1 = new Integer(100);
        Integer i2 = new Integer(10);
        //需求：要把两个数据进行相加得到结果3
        //对象之间是不能直接进行计算的
        /*
        * 步骤
        * 1.把对象进行拆箱,变成基本数据类型
        * 2.相加
        * 3.把得到的结果再次进行装箱(再次变回包装类)
        * */
//        int result = i1.intValue()+i2.intValue();
//        Integer i3 = new Integer(result);
//        System.out.println(i3);

        //在JDK5提出来一个机制:自动拆箱,自动装箱
        //自动拆箱：把包装类自动的变成其对象的基本数据类型
        //自动装箱：把基本数据类型会自动的变成其对应的包装类

        //在底层,此时还会去自动调用静态方法valueof得到一个Integer对象,只不过这个动作不需要我们去操作了
        //自动装箱的动作
        Integer i3 =10;
        Integer i4 = new Integer(20);
        //自动拆箱的动作
        int i= i2;
        Integer i5=i3+i4;
        System.out.println(i5);

        //在JDK5以后,int和Integer可以看做是同一个东西,因为内部可以自动转化

    }
}
